<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>
	// * 旧的: 必须在启动异步任务前指定回调函数
	// {
	// 	function fn(cb){
	// 		setTimeout(()=>{
	// 			let num = 10;
	// 			cb(num);
    //         })
    //     }
	// 	fn(function(num){
	// 		console.log(num);
    //     });
    // }

	// * promise: 启动异步任务 => 返回`promie`对象 =>
    // 给promise对象绑定回调函数(甚至可以在异步任务结束后指定/多个)
	{
		// 可以先指定回调函数
        // function fn(){
		// 	return new Promise(resolve=>{
		// 		setTimeout(function(){
		// 			let num = 10;
		// 			resolve(num);
        //         })
        //     })
        //
        // }
		// fn().then(value=>{
		// 	console.log(value);
        // })


        // 也可以后指定回调函数
		// function fn(){
		// 	return new Promise(resolve=>{
		// 		setTimeout(function(){
		// 			let num = 10;
		// 			resolve(num);
		// 		})
		// 	})
        //
		// }
		// setTimeout(()=>{
		// 	fn().then(value=>{
		// 		console.log(value);
		// 	})
        // },2000)

        // 可以指定多个回调函数
		function fn(){
			return new Promise(resolve=>{
				setTimeout(function(){
					let num = 10;
					resolve(num);
		        })
		    })

		}
		const p = fn();
		p.then(value=>{
			console.log(value);
		})
		p.then(value=>{
			console.log(value);
		})
		p.then(value=>{
			console.log(value);
		})
		p.then(value=>{
			console.log(value);
		})
		p.then(value=>{
			console.log(value);
		})
		p.then(value=>{
			console.log(value);
		})
    }
</script>
</html>